home *** CD-ROM | disk | FTP | other *** search
- <%@ Language=VBScript %>
- <% Option Explicit %>
- <%
- '-------------------------------------------------------------------------
- ' POP3 Mail Add-in - Master Settings
- ' Copyright (C) Microsoft Corporation. All rights reserved.
- '-------------------------------------------------------------------------
- %>
- <!-- #include virtual="/admin/inc_framework.asp" -->
- <!-- #include virtual="/admin/ots_main.asp" -->
- <!-- #include file="p3cminc.asp" -->
- <%
-
- '-------------------------------------------------------------------------
- ' Global Constants
- '-------------------------------------------------------------------------
- Dim SOURCE_FILE
- SOURCE_FILE = SA_GetScriptFileName()
-
- Const c_nMaxPort = 65535
- Const FLD_AUTHENTICATION = "fldAuthentication"
- Const FLD_PORT = "fldPort"
- Const FLD_LOGGING = "fldLogging"
- Const FLD_MAILROOT = "fldMailRoot"
- Const FLD_REQUIRESPA = "fldRequireSPA"
- Const FLD_SERVICERESTART = "fldServiceRestart"
-
- Const SERVICE_RESTART_NONE = 0
- Const SERVICE_RESTART_POP3SVC = 1
- Const SERVICE_RESTART_POP3SVC_SMTP = 2
-
- Const SERVICE_CONTROL_STOP = 1
-
- '-------------------------------------------------------------------------
- ' Global Variables
- '-------------------------------------------------------------------------
- Dim g_page
-
- Dim g_nAuthentication
- Dim g_nPort
- Dim g_nLoggingLevel
- Dim g_strMailRoot
- Dim g_bSPARequired
-
- Dim g_nDomains
- Dim g_iServiceRestart
-
- '----------------------------------------------------------------------
- ' Global Localized Strings
- '----------------------------------------------------------------------
- Dim l_strPageTitle
- l_strPageTitle = GetLocString(RES_DLL_NAME, _
- POP3_PAGETITLE_MASTERSETTINGS, _
- "")
- Dim l_strCaptionAuthentication
- l_strCaptionAuthentication = GetLocString(RES_DLL_NAME, _
- POP3_CAPTION_MASTERSETTINGS_AUTHENTICATION, _
- "")
- Dim l_astrAuthentication(3)
- l_astrAuthentication(AUTH_AD) = GetLocString(RES_DLL_NAME, _
- POP3_AUTHENTICATION_ACTIVEDIRECTORY, _
- "")
- l_astrAuthentication(AUTH_SAM) = GetLocString(RES_DLL_NAME, _
- POP3_AUTHENTICATION_WINDOWSACCOUNTS, _
- "")
- l_astrAuthentication(AUTH_FILE) = GetLocString(RES_DLL_NAME, _
- POP3_AUTHENTICATION_FILE, _
- "")
- Dim l_strCaptionPort
- l_strCaptionPort = GetLocString(RES_DLL_NAME, _
- POP3_CAPTION_MASTERSETTINGS_PORT, _
- "")
- Dim l_strCaptionLoggingLevel
- l_strCaptionLoggingLevel = GetLocString(RES_DLL_NAME, _
- POP3_CAPTION_MASTERSETTINGS_LOGGING, _
- "")
- Dim l_astrLogging(3)
- l_astrLogging(LOGGING_NONE) = GetLocString(RES_DLL_NAME, _
- POP3_LOGGING_NONE, _
- "")
- l_astrLogging(LOGGING_MINIMUM) = GetLocString(RES_DLL_NAME, _
- POP3_LOGGING_MINIMUM, _
- "")
- l_astrLogging(LOGGING_MEDIUM) = GetLocString(RES_DLL_NAME, _
- POP3_LOGGING_MEDIUM, _
- "")
- l_astrLogging(LOGGING_MAXIMUM) = GetLocString(RES_DLL_NAME, _
- POP3_LOGGING_MAXIMUM, _
- "")
- Dim l_strCaptionMailRoot
- l_strCaptionMailRoot = GetLocString(RES_DLL_NAME, _
- POP3_CAPTION_MASTERSETTINGS_MAILROOT, _
- "")
- Dim l_strConfirmNewMailRoot
- l_strConfirmNewMailRoot = GetLocString(RES_DLL_NAME, _
- POP3_PROMPT_MAILROOTCONFIRM, _
- "")
- Dim l_strConfirmPOP3ServiceRestart
- l_strConfirmPOP3ServiceRestart = GetLocString(RES_DLL_NAME, _
- POP3_PROMPT_SERVICERESTART_POP3SVC, _
- "")
- Dim l_strConfirmPOP3SMTPServiceRestart
- l_strConfirmPOP3SMTPServiceRestart = GetLocString(RES_DLL_NAME, _
- POP3_PROMPT_SERVICERESTART_POP3SVC_SMTP, _
- "")
- Dim l_strCaptionRequireSPA
- l_strCaptionRequireSPA = GetLocString ( RES_DLL_NAME, _
- POP3_CAPTION_MASTERSETTINGS_REQUIRESPA, _
- "" )
-
- Dim l_strErrInvalidPort
- l_strErrInvalidPort = GetLocString(RES_DLL_NAME, _
- POP3_E_INVALIDPORT, _
- "")
-
-
- '**********************************************************************
- '* E N T R Y P O I N T
- '**********************************************************************
-
- Call SA_CreatePage(l_strPageTitle, "", PT_PROPERTY, g_page)
- Call SA_ShowPage (g_page)
-
-
- '**********************************************************************
- '* H E L P E R S U B R O U T I N E S
- '**********************************************************************
- '---------------------------------------------------------------------
- ' ServeCommonJavaScript
- '---------------------------------------------------------------------
- Function ServeCommonJavaScript()
- %>
- <script language="JavaScript" src="../inc_global.js">
- </script>
- <script language="JavaScript">
-
- var g_strOriginalMailRoot;
- function Init()
- {
- g_strOriginalMailRoot = document.getElementsByName("<%=FLD_MAILROOT%>").item(0).value;
- g_nPort = document.getElementsByName("<%=FLD_PORT%>").item(0).value;
- g_nLoggingLevel = document.getElementsByName("<%=FLD_LOGGING%>").item(0).value;
-
- // Update the checkbox enabled state.
- OnAuthenticationChanged();
- g_bSPARequired = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0).checked;
- }
- function ValidatePage()
- {
- var strPort = document.getElementsByName("<%=FLD_PORT%>").item(0).value;
- var strLoggingLevel = document.getElementsByName("<%=FLD_LOGGING%>").item(0).value;
- var strSPARequired = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0).checked;
- var strNewMailRoot = document.getElementsByName("<%=FLD_MAILROOT%>").item(0).value;
-
- try
- {
- var nPort = parseInt(strPort);
- if ( isNaN(nPort) || 1 > nPort || <%= c_nMaxPort %> < nPort || nPort != strPort )
- {
- SA_DisplayErr("<%=SA_EncodeQuotes(Server.HTMLEncode(l_strErrInvalidPort))%>");
- return false;
- }
- }
- catch(e)
- {
- SA_DisplayErr("<%=SA_EncodeQuotes(Server.HTMLEncode(l_strErrInvalidPort))%>");
- return false;
- }
-
- var nDomains = document.getElementsByName("fldNumDomains").item(0).value;
- var bRC = true;
- if(strNewMailRoot != g_strOriginalMailRoot && nDomains > 0)
- {
- bRC = confirm("<%=SA_EncodeQuotes( l_strConfirmNewMailRoot )%>");
- }
- if ( bRC )
- {
- var nServiceRestart = "<%=SERVICE_RESTART_NONE%>";
- if ( strPort != g_nPort || strSPARequired != g_bSPARequired )
- {
- nServiceRestart = "<%=SERVICE_RESTART_POP3SVC%>";
- }
- if ( strNewMailRoot != g_strOriginalMailRoot || strLoggingLevel != g_nLoggingLevel )
- {
- nServiceRestart = "<%=SERVICE_RESTART_POP3SVC_SMTP%>";
- }
- if ( "<%=SERVICE_RESTART_POP3SVC%>" == nServiceRestart )
- {
- if ( confirm("<%=SA_EncodeQuotes( l_strConfirmPOP3ServiceRestart )%>"))
- {
- document.getElementsByName("<%=FLD_SERVICERESTART%>").item(0).value = nServiceRestart;
- }
- }
- if ( "<%=SERVICE_RESTART_POP3SVC_SMTP%>" == nServiceRestart )
- {
- if ( confirm("<%=SA_EncodeQuotes( l_strConfirmPOP3SMTPServiceRestart )%>"))
- {
- document.getElementsByName("<%=FLD_SERVICERESTART%>").item(0).value = nServiceRestart;
- }
- }
- }
-
- return bRC;
- }
- function SetData(){}
-
- </script>
- <%
- End Function
-
-
- '**********************************************************************
- '* E V E N T H A N D L E R S
- '**********************************************************************
-
- '---------------------------------------------------------------------
- ' OnInitPage
- '---------------------------------------------------------------------
- Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
- On Error Resume Next
-
- OnInitPage = TRUE
-
- Dim oConfig
- Set oConfig = Server.CreateObject("P3Admin.P3Config")
-
- g_nLoggingLevel = oConfig.LoggingLevel
- g_strMailRoot = oConfig.MailRoot
- g_nPort = CLng(oConfig.Service.Port)
- g_nAuthentication = oConfig.Authentication.CurrentAuthMethod
- g_nDomains = oConfig.Domains.Count
- g_bSPARequired = oConfig.Service.SPARequired
- g_iServiceRestart = CInt(SERVICE_RESTART_NONE)
-
- If (Err.number <> 0) Then
- Call SA_SetErrMsg( HandleUnexpectedError() )
- End If
- End Function
-
- '---------------------------------------------------------------------
- ' OnServePropertyPage
- '---------------------------------------------------------------------
- Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
- On Error Resume Next
-
- '
- ' Emit Javascript functions required by Web Framework
- Call ServeCommonJavaScript()
-
- OnServePropertyPage = TRUE
-
- '
- ' Disable the authentication dropdown unless no domains have been
- ' created for this server.
- '
- Dim strAuthenticationDisabled
- If (g_nDomains > 0) Then
- strAuthenticationDisabled = "DISABLED"
- Else
- strAuthenticationDisabled = ""
- End If
-
- Dim strSelected ' Used to select the current value in the dropdowns below.
- strSelected = ""
-
- Dim oConfig, iType, iCount
- Dim iAuthFileType
-
- iAuthFileType = -1
- Set oConfig = Server.CreateObject("P3Admin.P3Config")
- iCount = oConfig.Authentication.Count
-
- For iType = 1 To iCount
- If ( AUTH_FILE = oConfig.Authentication.Item(CLng(iType)).ID ) Then
- iAuthFileType = iCount
- End If
- Next
- %>
- <SCRIPT LANGUAGE="javascript">
- function OnAuthenticationChanged()
- {
- var oDropDown = document.getElementsByName("<%=FLD_AUTHENTICATION%>").item(0);
- var oRequireSPA = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0);
- var nAuthentication = oDropDown.options(oDropDown.selectedIndex).value;
-
- if ( nAuthentication == "<%=iAuthFileType%>" )
- {
- oRequireSPA.disabled = true ;
- oRequireSPA.checked = false ;
- }
- else
- {
- oRequireSPA.disabled = false ;
- oRequireSPA.checked = <%= CStr(g_bSPARequired) %> ;
- }
- }
- </SCRIPT>
-
- <TABLE CLASS="TasksBody" CELLPADDING=0 CELLSPACING=0>
- <TR>
- <TD CLASS="TasksBody">
- <%=Server.HTMLEncode(l_strCaptionAuthentication)%>
- </TD>
- <TD CLASS="TasksBody">
- <SELECT CLASS="FormField"
- NAME="<%=FLD_AUTHENTICATION%>"
- ONCHANGE="OnAuthenticationChanged();"
- <%=strAuthenticationDisabled%>>
- <%
- 'Dim oConfig, iType, iCount
- 'Set oConfig = Server.CreateObject("P3Admin.P3Config")
- 'iCount = oConfig.Authentication.Count
-
- For iType = 1 To iCount
- If (iType = oConfig.Authentication.CurrentAuthMethod) Then
- strSelected = "SELECTED"
- Else
- strSelected = ""
- End If
- %>
- <OPTION <%=strSelected%>
- VALUE="<%=iType%>"><%=Server.HTMLEncode(oConfig.Authentication.Item(CLng(iType)).Name)%></OPTION>
- <%
- Next
- %>
- </SELECT>
- </TD>
- </TR>
- <TR>
- <TD CLASS="TasksBody">
- <%=Server.HTMLEncode(l_strCaptionPort)%>
- </TD>
- <TD CLASS="TasksBody">
- <INPUT TYPE="text"
- CLASS="FormField"
- NAME="<%=FLD_PORT%>"
- VALUE="<%=g_nPort%>"
- SIZE="5"
- MAXLENGTH="5">
- </TD>
- </TR>
- <TR>
- <TD CLASS="TasksBody">
- <%=Server.HTMLEncode(l_strCaptionLoggingLevel)%>
- </TD>
- <TD CLASS="TasksBody">
- <SELECT CLASS="FormField" NAME="<%=FLD_LOGGING%>">
- <%
- Dim iLevel
- For iLevel = 0 To 3
- If (iLevel = g_nLoggingLevel) Then
- strSelected = "SELECTED"
- Else
- strSelected = ""
- End If
- %>
- <OPTION <%=strSelected%>
- VALUE="<%=iLevel%>"><%=Server.HTMLEncode(l_astrLogging(iLevel))%></OPTION>
- <%
- Next
- %>
- </SELECT>
- </TD>
- </TR>
-
- </TABLE>
- <BR>
- <TABLE>
- <TR>
- <TD CLASS="TasksBody" COLSPAN="2">
- <%=Server.HTMLEncode(l_strCaptionMailRoot)%>
- </TD>
- </TR>
- <TR>
- <TD CLASS="TasksBody">
- <INPUT TYPE="text"
- CLASS="FormField"
- NAME="<%=FLD_MAILROOT%>"
- VALUE="<%=Server.HTMLEncode(g_strMailRoot)%>"
- MAXLENGTH="1024"
- STYLE="width: 350px">
- </TD>
- </TR>
- <TR>
- <TD CLASS="TasksBody" colspan="2">
- <INPUT type="checkbox" CLASS="FormField" NAME="<%=FLD_REQUIRESPA%>" ID="<%=FLD_REQUIRESPA%>">
- <%=Server.HTMLEncode(l_strCaptionRequireSPA)%>
- </TD>
- </TR>
- </TABLE>
- <BR>
- <INPUT TYPE="HIDDEN" NAME="fldNumDomains" VALUE="<%=g_nDomains%>">
- <INPUT TYPE="HIDDEN" NAME="<%=FLD_SERVICERESTART%>" VALUE="<%=g_iServiceRestart%>">
- <%
- If (Err.number <> 0) Then
- Call SA_SetErrMsg( HandleUnexpectedError() )
- End If
- End Function
-
- '---------------------------------------------------------------------
- ' OnPostBackPage
- '---------------------------------------------------------------------
- Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg)
- On Error resume next
-
- OnPostBackPage = TRUE
-
- Dim oConfig
- Set oConfig = Server.CreateObject("P3Admin.P3Config")
-
- '
- ' Get the authentication method, if it wasn't disabled. Otherwise,
- ' just get the current value from the Config object.
- '
- If (Request.Form(FLD_AUTHENTICATION).Count > 0) Then
- g_nAuthentication = CInt(Request.Form(FLD_AUTHENTICATION).Item(1))
- Else
- g_nAuthentication = oConfig.Authentication.CurrentAuthMethod
- End If
-
- '
- ' Get the rest of the form values.
- '
- If ( StrComp(Request.Form(FLD_REQUIRESPA), "on", vbTextCompare) = 0 ) Then
- g_bSPARequired = True
- Else
- g_bSPARequired = False
- End If
-
- g_nPort = CLng(Request.Form(FLD_PORT).Item(1))
- g_nLoggingLevel = CInt(Request.Form(FLD_LOGGING).Item(1))
- g_strMailRoot = CStr(Request.Form(FLD_MAILROOT).Item(1))
- g_iServiceRestart = CInt(Request.Form(FLD_SERVICERESTART).Item(1))
-
- g_nDomains = oConfig.Domains.Count
-
- If (Err.number <> 0) Then
- Call SA_SetErrMsg( HandleUnexpectedError() )
- End If
- End Function
-
- '---------------------------------------------------------------------
- ' OnSubmitPage
- '---------------------------------------------------------------------
- Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
- On Error Resume Next
-
- Dim oConfig, oAuthMethods
- Set oConfig = Server.CreateObject("P3Admin.P3Config")
- Set oAuthMethods = oConfig.Authentication
-
- ' set Authmethod.
- oAuthMethods.CurrentAuthMethod = CLng(g_nAuthentication)
- oAuthMethods.Save ()
-
- ' set main settings
- oConfig.LoggingLevel = g_nLoggingLevel
- oConfig.MailRoot = g_strMailRoot
- oConfig.Service.Port = CLng(g_nPort)
- If ( g_bSPARequired = True ) Then
- oConfig.Service.SPARequired = 1
- Else
- oConfig.Service.SPARequired = 0
- End If
-
- ' cycle the services
- If (Err.number = 0) Then
- If ( SERVICE_RESTART_POP3SVC = g_iServiceRestart Or SERVICE_RESTART_POP3SVC_SMTP = g_iServiceRestart ) Then
- If ( SERVICE_CONTROL_STOP <> oConfig.Service.POP3ServiceStatus ) Then
- oConfig.Service.StopPOP3Service()
- oConfig.Service.StartPOP3Service()
- End If
- End If
- End If
- If (Err.number = 0) Then
- If ( SERVICE_RESTART_POP3SVC_SMTP = g_iServiceRestart ) Then
- If ( SERVICE_CONTROL_STOP <> oConfig.Service.SMTPServiceStatus ) Then
- oConfig.Service.StopSMTPService()
- oConfig.Service.StartSMTPService()
- End If
- End If
- End If
-
- If (Err.number <> 0) Then
- Call SA_SetErrMsg( HandleUnexpectedError() )
- OnSubmitPage = FALSE
- Else
- OnSubmitPage = TRUE
- End If
- End Function
-
- '---------------------------------------------------------------------
- ' OnClosePage
- '---------------------------------------------------------------------
- Public Function OnClosePage(ByRef PageIn, ByRef EventArg)
- OnClosePage = TRUE
- End Function
- %>
-